package com.ynet.middleground.approve.service;

import javax.validation.Valid;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.approve.bean.GetImageReq;
import com.ynet.middleground.approve.dto.ProcessResourceDTO;

/**
 * @author liulx
 * @description 流程图资源接口服务类
 * @date 2019-10-14 14:38
 */
public interface ProcessImageService {

    /**
     * 根据流程定义ID获取流程图资源
     * 
     * @param imageReq
     *            流程图资源请求对象
     * @return 流程图片文件流
     */
    ServiceResult<String> getImageByDefinitionId(@Valid GetImageReq imageReq);

    /**
     * 根据流程实例ID获取实时流程图资源
     *
     * @param imageReq
     *            流程图资源请求对象
     * @return 流程图片文件流
     */
    ServiceResult<String> getImageByInstanceId(@Valid GetImageReq imageReq);

    /**
     * 根据流程定义 Key 获取实时流程图资源
     *
     * @param imageReq
     *            流程图资源请求对象
     * @return 流程图片文件流
     */
    ServiceResult<String> getImageByProcessDefinitionKey(@Valid GetImageReq imageReq);

    /**
     * 获取实时流程完整资源
     * 
     * @param imageReq
     *            流程图资源请求对象
     * @return 流程资源信息
     */
    ServiceResult<ProcessResourceDTO> getResource(@Valid GetImageReq imageReq);

}
